From: Wei Liu Date: Mon, 19 Jan 2015 16:13:59 +0000 (+0000) Subject: libxl: check HVM direct boot parameters X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~3903 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=0e560dfc48e7df189742525dd12a1ef691188a3b;p=xen.git libxl: check HVM direct boot parameters We should honour -initrd and -append iff -kernel is specified, because that's how QEMU works. Check direct boot parameters in libxl__domain_build_info_setdefault. Return failure if kernel is missing while ramdisk (-initrd) and / or cmdline (-append) is present. Signed-off-by: Wei Liu Cc: Ian Campbell Cc: Ian Jackson Cc: Stefano Stabellini Cc: Chunyan Liu Acked-by: Ian Campbell --- diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 6f87d1c6b2..98687bdb52 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -170,6 +170,14 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, break; default:abort(); } + + /* Check HVM direct boot parameters, we should honour ->ramdisk and + * ->cmdline iff ->kernel is set. + */ + if (!b_info->kernel && (b_info->ramdisk || b_info->cmdline)) { + LOG(ERROR, "direct boot parameters specified but kernel missing"); + return ERROR_INVAL; + } } if (b_info->type == LIBXL_DOMAIN_TYPE_HVM &&